package cn.tm.ms.nerver.ft.strategy.support;

import cn.tm.ms.nerver.ft.entry.FtDo;
import cn.tm.ms.nerver.ft.entry.ModuleConf;
import cn.tm.ms.nerver.ft.strategy.FtStrategy;
import cn.tm.ms.nerver.ft.support.FtHandler;

/**
 * 2.快速失败(Failfast)
 * <p>
 * 快速失败，只发起一次调用，失败立即报错<p>
 * 通常用于非幂等性的写操作，比如新增记录<p>
 * 
 * @author lry
 *
 * @param <REQ>
 * @param <RES>
 */
public class Failfast<REQ, RES> implements FtStrategy<REQ, RES> {

	public RES execute(FtDo<REQ, RES> ftDo) {
		ftDo.setConf(new ModuleConf(1.0, 0, 0, false));//不进行重试、不切换mock服务
		FtHandler<REQ, RES> handler=new FtHandler<REQ, RES>();
		
		return handler.execute(ftDo);
	}

}
